package com.hzh.scala

import java.util.Scanner


object Demo2Base {
  def main(args: Array[String]): Unit = {
    /**
     * 变量
     * 可变：var 变量的引用可以再指向其他的变量
     * 不可变(常量)：val
     * 尽量使用val
     *
     * 变量类型自动推断
     * 变量类型会自动通过等号右边的值自动推断出来
     *
     */
      //自动推断类型
    val a = 100
    //手动增加类型
    val b:String = "scala"
    println(b.getClass)
    var i = 100
    println(i)
    i = 200
    println(i)

    println("*" * 100)
    /**
     * 2、字符串
     * scala中的字符串和Java中的一样
     * scala和java兼容，java中的类在Scala中可以使用，scala中的类可以在Java中使用
     *
     */
    val str: String = "java,hadoop,scala"
    //split:通过一个分隔符讲一个序列拆分成多个字符串
    val array: Array[String] = str.split(",")
    //mkString:通过一个分隔符将一个序列拼接成一个字符串，与split相反
    println(array.mkString("|"))

    /**
     * 字符串拼接
     * 1、使用 +
     * 2、StringBuffer,mkString
     * 3、推荐使用scala中的方法
     */
    val str1: String = "java" + "hadoop" + "scala"
    println(str1)

    val builder = new StringBuilder
    builder.append("java")
    builder.append(",")
    builder.append("hadoop")
    builder.append(",")
    builder.append("scala")
    println(builder.toString())

    //3、scala中的方法
    val s1 = "java"
    val s2 = 100
    val s3 = 3.14

    //
    val value = s"${s1}_${s2}_${s3}"
    println(value)

    println("*".*(100))

    /**
     * 数组
     *
     */
    val ints: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7, 8, 9)
    //通过下表取元素
    println(ints(3))
    //通过下标修改数据
    ints(2) = 100
    //打印数组中的元素
    println(ints.mkString("|"))

    /**
     * 算数运算
     *
     */
    val i2 = 100
    val i3 = 3
    println(i2 + i3)
    println(i2 - i3)
    println(i2 * i3)
    println(i2 / i3)
    println(i2 % i3)

    /**
     * 流程控制
     *
     */
    val scanner = new Scanner(System.in)

    val i1: Int = scanner.nextInt()
    if (i1 >= 18){
      println("成年")
    }else{
      println("未成年")
    }

    /**
     * 循环
     * while循环
     * for循环
     * scala中没有fori循环 没有break、continue
     *
     */
    //while
    val arr1: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7, 8)
    var j = 0
    while (j<arr1.length){
      println(arr1(j))
      j+=1
    }

    //增强for循环
    for (elem:Int <- arr1) {
      println(elem)
    }












  }

}
